/**  
 * @Title: StringUtil.java
 * @Package org.csun.nc.utils
 * @Description: TODO
 * @author chisj chisj@foxmail.com
 * @date 2018年7月27日
 */
package com.csun.cmny.provider.utils.map;

import java.util.Map;
import java.util.Random;

/**
 * ClassName: StringUtil 
 * @Description: TODO
 * @author chisj chisj@foxmail.com
 * @date 2018年7月27日
 */
public class StringUtil {

	/**
	 * @Description: String 转 Unicode
	 * @param string 待转的字符串
	 * @return String 转换后的Unicode字符
	 * @author chisj chisj@foxmail.com
	 * @date 2018年7月27日
	 */
	public static String string2Unicode(String string) {
        StringBuffer unicode = new StringBuffer();
        for (int i = 0; i < string.length(); i++) {
            // 取出每一个字符
            char c = string.charAt(i);
            // 转换为unicode
            unicode.append("\\u" + Integer.toHexString(c));
        }
        return unicode.toString();
    }
	
	public static String unicode2String(String unicode) {
        StringBuffer string = new StringBuffer();
        String[] hex = unicode.split("\\\\u");
        for (int i = 1; i < hex.length; i++) {
            // 转换出每一个代码点
            int data = Integer.parseInt(hex[i], 16);
            // 追加成string
            string.append((char) data);
        }
        return string.toString();
    }
	
	/**
	 * 
	 * @Description: TODO
	 * @param @return   
	 * @return String  
	 * @throws
	 * @author chisj chisj@foxmail.com
	 * @date 2018年7月30日
	 */
	public static String getTaskId() {
		String taskId = "";
		return taskId;
	}
	
	public static String getRandomString(int length){
	    //定义一个字符串（A-Z，a-z，0-9）即62位；
	    String str="zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
	    //由Random生成随机数
	        Random random=new Random(); 
	        StringBuffer sb=new StringBuffer();
	        //长度为几就循环几次
	        for(int i=0; i<length; ++i){
	          //产生0-61的数字
	          int number=random.nextInt(62);
	          //将产生的数字通过length次承载到sb中
	          sb.append(str.charAt(number));
	        }
	        //将承载的字符转换成字符串
	        return sb.toString();
	  }
	  /**
	   * 第二种方法
	   */
	  public static String getRandomString2(int length){
	    //产生随机数
	    Random random=new Random();
	    StringBuffer sb=new StringBuffer();
	    //循环length次
	    for(int i=0; i<length; i++){
	      //产生0-2个随机数，既与a-z，A-Z，0-9三种可能
	      int number=random.nextInt(3);
	      long result=0;
	      switch(number){
	      //如果number产生的是数字0；
	      case 0:
	        //产生A-Z的ASCII码
	        result=Math.round(Math.random()*25+65);
	        //将ASCII码转换成字符
	        sb.append(String.valueOf((char)result));
	        break;
	        case 1:
	          //产生a-z的ASCII码
	        result=Math.round(Math.random()*25+97);
	          sb.append(String.valueOf((char)result));
	        break;
	        case 2:
	          //产生0-9的数字
	                   sb.append(String.valueOf
	                          (new Random().nextInt(10)));
	        break;
	      }
	    }
	    return sb.toString();
	  }

	/**
	 * @Description: TODO
	 * @param @param startPointMap
	 * @param @param string
	 * @param @return   
	 * @return String  
	 * @throws
	 * @author chisj chisj@foxmail.com
	 * @date 2018年9月3日
	 */
	public static String convertMapString(Map<String, Object> map,
			String key) {
		// TODO Auto-generated method stub
		
		return map.get(key).toString();
	}
}
